<?php

/* Copyright (c) 2012 Universidad Del Atlántico

  Autor

  Carlos Fuentes

  /* All rights reserved.

  /* Redistribution and use in source and binary forms, with or without
  /* modification, are permitted provided that the following conditions
  /* are met:
  /* 1. Redistributions of source code must retain the above copyright
  /*    notice, this list of conditions and the following disclaimer.
  /* 2. Redistributions in binary form must reproduce the above copyright
  /*    notice, this list of conditions and the following disclaimer in the
  /*    documentation and/or other materials provided with the distribution.
  /* 3. Neither the name of copyright holders nor the names of its
  /*    contributors may be used to endorse or promote products derived
  /*    from this software without specific prior written permission.

  /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  /* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  /* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  /* PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS
  /* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  /* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  /* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  /* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  /* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  /* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  /* POSSIBILITY OF SUCH DAMAGE.


 */

/**
 * Description of URLParser
 *
 * @author UNIATLANTICO
 */
class URLParser {

    private $url;
    private $parsed;
    private $parsedurl;
    private $shortedurl;
    private $action;

    public function __construct($action) {
        $this->action = $action;
        $this->url = $this->action['action'];
        $this->parseURL();
    }

    public function getUrl() {
        return $this->parsedurl;
    }

    public function getParsedURL() {
        return $this->parsed;
    }

    private function parseURL() {
        
        $parsed_url = parse_url($this->url);
        $firephp=  FirePHP::getInstance(true);
        $firephp->log($parsed_url);
        $parse = array();
        $parse['scheme'] = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . ':/' : $_SERVER['REQUEST_SCHEME'] . '://';
        $parse['host'] = isset($parsed_url['host']) ? $parsed_url['host'] : $_SERVER['HTTP_HOST'];
        $parse['port'] = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : ':' . $_SERVER['SERVER_PORT'];
        $path = isset($parsed_url['path']) ? $parsed_url['path'] : '';
        
        $a = explode("/", $path);
        
        switch (count($a)) {
            case 1:
                $parse['path'] = str_replace("/", "", $_SERVER['REQUEST_URI']);
                $parse['func'] = $a[0];
                $parse['para'] = 0;
                break;
            case 2:

                $parse['path'] = str_replace("/", "", $_SERVER['REQUEST_URI']);
                $parse['func'] = $a[0];
                $parse['para'] = $a[1];
                break;
            case 3:

                $parse['path'] = $a[1];
                $parse['func'] = $a[2];
                $parse['para'] = 0;
                break;
        }
        
        $this->parsedurl = str_replace("/:", ":", implode("/", $parse));
        
        ////$firephp->log($this->parsedurl);
        $this->parsed = $parse;
        ////$firephp->log($parse);
    }

    //put your code here
}

?>
